{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第12章 监督学习方法总结\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1 适用问题\n",
    "\n",
    "监督学习可以认为是学习一个模型，使它能对给定的输入预测相应的输出。监督学习包括分类、标注、回归。本篇主要考虑前两者的学习方法。\n",
    "\n",
    "分类问题是从实例的特征向量到类标记的预测问题；标注问题是从观测序列到标记序列(或状态序列)的预测问题。可以认为分类问题是标注问题的特殊情况。\n",
    "分类问题中可能的预测结果是二类或多类；而标注问题中可能的预测结果是所有的标记序列，其数目是指数级的。\n",
    " \n",
    "感知机、$k$近邻法、朴素贝叶斯法、决策树是简单的分类方法，具有模型直观、方法简单、实现容易等特点；\n",
    "\n",
    "逻辑斯谛回归与最大熵模型、支持向量机、提升方法是更复杂但更有效的分类方法，往往分类准确率更高；\n",
    "\n",
    "隐马尔可夫模型、条件随机场是主要的标注方法。通常条件随机场的标注准确率更事高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2 模型\n",
    "\n",
    "分类问题与标注问题的预测模型都可以认为是表示从输入空间到输出空间的映射.它们可以写成条件概率分布$P(Y|X)$或决策函数$Y=f(X)$的形式。前者表示给定输入条件下输出的概率模型，后者表示输入到输出的非概率模型。\n",
    "\n",
    "朴素贝叶斯法、隐马尔可夫模型是概率模型；感知机、$k$近邻法、支持向量机、提升方法是非概率模型；而决策树、逻辑斯谛回归与最大熵模型、条件随机场既可以看作是概率模型，又可以看作是非概率模型。\n",
    "\n",
    "直接学习条件概率分布$P(Y|X)$或决策函数$Y=f(X)$的方法为判别方法，对应的模型是判别模型：感知机、$k$近邻法、决策树、逻辑斯谛回归与最大熵模型、支持向量机、提升方法、条件随机场是判别方法。\n",
    "\n",
    "首先学习联合概率分布$P(X,Y)$，从而求得条件概率分布$P(Y|X)$的方法是生成方法，对应的模型是生成模型：朴素贝叶斯法、隐马尔可夫模型是生成方法。\n",
    "\n",
    "决策树是定义在一般的特征空间上的，可以含有连续变量或离散变量。感知机、支持向量机、k近邻法的特征空间是欧氏空间(更一般地，是希尔伯特空间)。提升方法的模型是弱分类器的线性组合，弱分类器的特征空间就是提升方法模型的特征空间。\n",
    "\n",
    "感知机模型是线性模型；而逻辑斯谛回归与最大熵模型、条件随机场是对数线性模型；$k$近邻法、决策树、支持向量机(包含核函数)、提升方法使用的是非线性模型。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3  学习策略\n",
    "\n",
    "在二类分类的监督学习中，支持向量机、逻辑斯谛回归与最大熵模型、提升方法各自使用合页损失函数、逻辑斯谛损失函数、指数损失函数，分别写为：\n",
    "\n",
    "$$\n",
    "[1-y f(x)]_{+}\n",
    "$$\n",
    "\n",
    "$$\n",
    "\\log[1+\\exp (-y f(x))]\n",
    "$$\n",
    "\n",
    "$$\n",
    "\\exp (-y f(x))\n",
    "$$\n",
    "\n",
    "这3种损失函数都是0-1损失函数的上界，具有相似的形状。(见下图，由代码生成）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2763f064e48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import math\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "plt.figure(figsize=(10,8))\n",
    "x = np.linspace(start=-1, stop=2, num=1001, dtype=np.float)\n",
    "logi = np.log(1 + np.exp(-x)) / math.log(2)\n",
    "boost = np.exp(-x)\n",
    "y_01 = x < 0\n",
    "y_hinge = 1.0 - x\n",
    "y_hinge[y_hinge < 0] = 0\n",
    "\n",
    "plt.plot(x, y_01, 'g-', mec='k', label='（0/1损失）0/1 Loss', lw=2)\n",
    "plt.plot(x, y_hinge, 'b-', mec='k', label='（合页损失）Hinge Loss', lw=2)\n",
    "plt.plot(x, boost, 'm--', mec='k', label='（指数损失）Adaboost Loss', lw=2)\n",
    "plt.plot(x, logi, 'r-', mec='k', label='（逻辑斯谛损失）Logistic Loss', lw=2)\n",
    "plt.grid(True, ls='--')\n",
    "plt.legend(loc='upper right',fontsize=15)\n",
    "plt.xlabel('函数间隔:$yf(x)$',fontsize=20)\n",
    "plt.title('损失函数',fontsize=20)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " \n",
    "可以认为支持向量机、逻辑斯谛回归与最大熵模型、提升方法使用不同的代理损失函数(surrogateloas Punotion)表示分类的损失，定义经验风险或结构风险函数，实现二类分类学习任务。学习的策略是优化以下结构风险函数，\n",
    "\n",
    "$$\n",
    "\\min _{f \\in H} \\frac{1}{N} \\sum_{i=1}^{N} L\\left(y_{i}, f\\left(x_{i}\\right)\\right)+\\lambda J(f)\n",
    "$$\n",
    "\n",
    "第1项为经验风险(经验损失)，第2项为正则化项，$L(y,f(x))$为损失函数，$J(f)$为模型的复杂度，$\\lambda \\geq 0$为系数。\n",
    "\n",
    "支持向量机用$L_2$范数表示模型的复杂度。原始的逻辑斯谛回归与最大熵模型没有正则化项，可以给它们加上$L_2$范数正则化项。提升方法没有显式的正则化项，通常通过早停止(early stopping)的方法达到正则化的效果。\n",
    " \n",
    "概率模型的学习可以形式化为极大似然估计或贝叶斯估计的极大后验概率估计。学习的策略是极小化对数似然损失或极小化正则化的对数似然损失。对数似然损失可以写成：\n",
    "\n",
    "$$-logP(y|x)$$\n",
    "\n",
    "极大后验概率估计时，正则化项是先验概率的负对数。\n",
    "\n",
    "决策树学习的策略是正则化的极大似然估计，损失函数是对数似然损失，正则化项是决策树的复杂度。\n",
    "\n",
    "逻辑斯谛回归与最大熵模型、条件随机场的学习策略既可以看成是极大似然估计(或正则化的极大似然估计)，又可以看成是极小化逻辑斯谛损失(或正则化的逻辑斯谛损失)。\n",
    "\n",
    "朴素贝叶斯模型、隐马尔可夫模型的非监督学习也是极大似然估计或极大后验概率估计，但这时模型含有隐变量。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4 学习算法\n",
    "\n",
    "统计学习的问题有了具体的形式以后，就变成了最优化问题。\n",
    "\n",
    "朴素贝叶斯法与隐马尔可夫模型的监督学习，最优解即极大似然估计值，可以由概率计算公式直接计算。\n",
    "\n",
    "感知机、逻辑斯谛回归与最大熵模型、条件随机场的学习利用梯度下降法、拟牛顿法等一般的无约束最优化问题的解法。\n",
    "支持向量机学习，可以解凸二次规划的对偶问题。有序列最小最优化算法等方法。\n",
    "\n",
    "决策树学习是基于启发式算法的典型例子。可以认为特征选择、生成、剪枝是启发式地进行正则化的极大似然估计。\n",
    "\n",
    "提升方法利用学习的模型是加法模型、损失函数是指数损失函数的特点，启发式地从前向后逐步学习模型，以达到逼近优化目标函数的目的。\n",
    "\n",
    "EM算法是一种迭代的求解含隐变量概率模型参数的方法，它的收敛性可以保证，但是不能保证收敛到全局最优。\n",
    "\n",
    "支持向量机学习、逻辑斯谛回归与最大熵模型学习、条件随机场学习是凸优化问题，全局最优解保证存在。而其他学习问题则不是凸优化问题。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----\n",
    "\n",
    "本文代码更新地址：https://github.com/fengdu78/lihang-code\n",
    "\n",
    "中文注释制作：机器学习初学者公众号：ID:ai-start-com\n",
    "\n",
    "配置环境：python 3.5+\n",
    "\n",
    "代码全部测试通过。\n",
    "![gongzhong](../gongzhong.jpg)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
